package editor.weapon;

import math.Vector2D;

public interface Function<T>
{
	public T function();

	/**
	 * This function is meant to set the owner of the script's position
	 * 
	 * @author Ryan Hill
	 */
	class MoveTo implements Function<Vector2D>
	{
		private Vector2D pos;
	
		public MoveTo( Vector2D p )
		{
			pos = p;
		}
	
		public Vector2D function()
		{
			return pos;
		}
	}

	/**
	 * This function is meant to set the owner of the script's angle
	 * 
	 * @author Ryan Hill
 	 */
	class SetAngle implements Function<Double>
	{
		private double angle;
	
		public SetAngle( double ang )
		{
			angle = ang;
		}
	
		public Double function()
		{
			return angle;
		}
	}

	/**
	 * This function is meant to pause the script from being read
	 * 
	 * @author Ryan Hill
	 */
	class Pause implements Function<Double>
	{
		private double pause;
	
		public Pause( double p )
		{
			pause = p;
		}
	
		public Double function()
		{
			return pause;
		}
	}
}